iT邦幫忙

2024 iThome 鐵人賽

DAY 11
1
IT 管理

30天從版控到code review的實踐指南系列 第 11

Day 11. Git 操作入門:實作自動化加Release版號(GitHub Action)-上篇。

  • 分享至 

  • xImage
  •  

什麼是 Release 版號?


在專案管理中,Release 版號通常用於表示軟體或系統的發佈版本,讓開發人員可以清楚了解目前系統處於的版本階段。關於 Release 版號,將分成上、中、下,三篇,上篇介紹通用的版本命名方式,中、下篇將介紹如何用 GitHub Actions 自動產生版號與變更內容。

語意化版本號規則


語意化版本號規則(Semantic Versioning,也稱為 SemVer)為通用的版本號命名方式,格式為:

主版本號.次版本號.修訂版本號

表示方式:例如 2.0.3

  • 主版本號 major release:系統重大改變,例如:整體系統框架升級、改版。
  • 次版本號 minor release:改版內容不影響整體系統開發與使用,例如:新功能上線。
  • 修訂版本號 patch release:調整或修復既有程式碼問題,例如:更新既有功能邏輯。

系統 Release 版本號,以 SemVer 規則為例


以前端網頁系統開發為例:

  • major release:重大變更,已與現有功能不相容。
    • 前端框架的變更:從 Vue 2 升級到 Vue 3,或 ArcGIS API for JavaScript3.X 升級到 4.X,使大量既有功能皆需調整的重大升級變更。
    • UI / UX 重新設計:前端設計架構改變,導致原有的程式碼無法使用,影響原有功能運作。
    • CSS 預處理器或編譯工具的重大改變:從 Sass 切換到 PostCSS,或從 Webpack 轉向 Vite 等打包工具的改變,影響了整個編譯流程。
    • 重構前端程式碼架構:Vuex 升級到 Pinia,重構了component 架構或狀態管理模式。
  • minor release:新增功能或優化,保持向後相容,不會破壞現有功能。
    • 新增 UI 元件:例如加新的頁面、表單或彈出視窗等,這些新增功能不影響現有的頁面和功能。
    • 新功能或擴充現有功能:新增功能,如文件上傳功;既有功能擴充,如串接新 API 。
    • 樣式調整或視覺增強:對 UI 元素進行美化與設計調整,但不影響現有樣式的正常使用,例如按鈕樣式與顏色調整等。
    • 響應式設計優化:針對不同設備尺寸進行 UIUX 的調整,讓網站可在更多設備上被使用。
  • patch releaseBug 修復或功能小幅調整,完全向後兼容,對功能沒有影響。
    • 修復 UI 問題:調整元素對齊、字體大小不一致等細節問題。
    • 解決瀏覽器相容性問題:針對某些瀏覽器的特定 Bug 進行修正,確保相容性。
    • 特定功能效能優化:將使用迴圈的資料處理優化為一次性渲染,提升效能。
    • 資安修復:修復前端安全漏洞,防止敏感資訊洩露。

使用 SemVer 發布 Release 版號優點


  • 清晰易懂:不同類型的變更一目瞭然,並可根據版本號快速判斷該版本更新的影響範圍。
  • 穩定性:開發人員可根據變更類型來決定是否需立即更新版本,避免開發中的功能在後續併版後,發生程式碼不相容。
  • 自動化發布版號:結合如 GitHub ActionsCI/CD 流程,可自動檢測和管理不同程度的版本更新,幫助追蹤多個版本的程式碼調整歷程。

上一篇
Day 10. Git 操作入門:如何加標籤 Tag?
下一篇
Day 12. Git 操作入門:實作自動化加Release 版號(GitHub Actions)-中篇。
系列文
30天從版控到code review的實踐指南13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言